﻿<?
    /* 
    * Оболочка
    */
Class Chat
	{
	    Public $Resource;
		Public Function __construct(MChat $Resource)
		{
		    $This->Resource = $Resource;
		    switch( strToLower($_GET['act']) )
                {
                  case "user.is":
                    {
                        if ( Permissions::GetPerm('user.is', Protect::Status()))
                         {
                            if( $_GET['login'])
                                echo $This->Resource->Users->isRegUser($_GET['login']);
                                    else
                                echo NOTALLRESOURCES;

                        }
                      else
                      {
                        echo NOPERM;
                      }
                        break;
                    }
                    case "user.getinfo":
                    {
                        if ( Permissions::GetPerm('user.getinfo',Protect::Status()))
                        {
                            if($_GET['login'])
                                {
                                    echo json_encode($This->Resource->Users->GetInfo($_GET['login']));
                                }
                                else
                                {
                                  echo NOTALLRESOURCES;
                                }
                        }
                        else
                        {
                          echo NOPERM;
                        }
                        break;
                    }
                }
		}
		Public Function __destruct()
		{
			
		}
	}
    /*

    */
    Class Protect
    {
      Static Public $Auth = 0;//Авторизованный или нет
      Static Public $Status = 0;//Класс юзера, смотрите классы уровней ниже
      Static Public $UserLogin = NULL;//Хранит логин пользователя, которым управляет

      /*
        *Auth() - авторизация
        *Status() - возвращает класс юзера ( смотрите ниже )
      */
      Static Function Auth($Login,$Password)
        {

        }
      Static Function Status()
        {
            return self::$Status;
        }
    }
    /*
    * Ограничение возможностей юзеров
    * КЛАССЫ ЮЗЕРОВ:
    * 0 - незарегестрированный/неавторизованный
    * 1 - зарегестрированный и авторизованный
    * 2 - админ
    */
    Class Permissions
    {
      Public Static $Permissions = array("user.is"=>0,"user.getinfo"=>0);
      /*
        *GetPerm() - возвращает true или false,т.е. может юзер с классом $Status выполнять команду $P
        *
      */
      Public Static Function GetPerm($P,$Status)
        {
          $Permissions = self::$Permissions[$P];

          if ($Status >= $Permissions)
          {
            return true;
          }
          else
          {
            return false;
          }

        }


    }
?>